While increasingly more successful in their roles as store and forward data systems, computer networks such as the Internet are experiencing tremendous growth as transaction-based, mission critical business applications, Web site owners, and business servers are overwhelmed by explosive traffic growth. The traditional approach is to buy more servers and network bandwidth. There is typically no distinction between levels of service, but rather a first-in first-out (FIFO) best efforts approach has been the default. However, this has resulted in uneven performance and undifferentiated service. Clearly, there is a need for a technique to allow service providers to intelligently offer different services and different levels of service depending on the circumstances.
Systems are available that allow messages to be routed based upon headers or header information. For example, in Hypertext Transfer Protocol (HTTP), a Post request method includes a request line, a header (or one or more headers) and a body. The request line includes a pointer to a requested resource or program to process the message, such as a Universal Resource Identifier (URI) or Universal Resource Locator (URL). The HTTP header may also include the type of message, the length of the body, and the date. There are systems that parse or examine the URL (i.e., the request line) and/or the HTTP header, and then route the message to a destination node based on the URL and/or header. One such system is described in “The Advantages of F5's HTTP Header Load Balancing Over Single-Point URL Parsing Solutions.” However, this approach is very limited as switching decisions are based only on the HTTP header and/or URL.
Another system, known as BizTalk™, improves slightly on the URL parsing technique by providing a system that is compatible with XML-based messages.
XML, or eXtensible Markup Language v. 1.0 was adopted by the World Wide Web Consortium (W3C) on Feb. 10, 1998. XML provides a structured syntax for data exchange. XML is a markup language, like HTML. Most markup languages, like HTML, are fixed markup languages. That is, the fixed markup languages (including HTML) include a set of fixed tags for crafting a document. On the other hand, XML does not define a fixed set of tags, but rather, only defines a syntax or structured format through which users can define their own set of XML tags. There presently are a number of XML based languages which define their own set of tags using the XML syntax. XML has the further advantage because the actual data is separated from the presentation of the data, in contrast with HTML which combines these two items. As a result, XML has the potential to become a standard by which most computers, servers and applications will exchange or communicate data.
As described in “BizTalk Framework 1.0a Independent Document Specification,” Microsoft Corp., Jan. 7, 2000, BizTalk defines a specific set of tags (or BizTags) within a message that are used to specify business document handling (p.7). A Biztalk server uses information contained in the Biztags to determine the correct transport-specific destination address(es). (pp. 9, 11). However, the tags used to mark up business transaction information within the message body are determined by the individual implementation. These implementation-specific tags (provided in the content or business transaction information of the message body) are not considered BizTags (p. 11).
There are a number of disadvantages to such an approach. The BizTalk system is very limited because it can route or switch messages based only upon header or introductory information, based upon the fixed set of the BizTalk tags. The BizTalk system does not make decisions or route/switch messages based upon the actual content or business information (e.g., business transaction information) within the message body. Moreover, to provide routing or address information, the Biztalk system requires that messages conform to the required format for the fixed set of Biztags, which is very inflexible and will likely inhibit the routing or switching of messages provided according to the other XML based languages (e.g., CXML, WML). Finally, many processing nodes, application servers and the like are presently burdened with a number of activities, such as establishing connections, communicating and processing requests for business related information, purchase orders, invoices or other business transactions. Further burdening a server with routing or switching decisions will require significant application processing cycles or bandwidth. This may overburden the server or negatively impact the server's ability to adequately handle business transactions.